1
เปลี่ยนไปสู่การรู้จำภาพด้วยคอมพิวเตอร์: ทำไมต้องใช้เครือข่ายประสาทเทียมแบบคอนโวลูชัน (CNN)?
EvoClass-AI002บทเรียนที่ 4
00:00

เปลี่ยนไปสู่การรู้จำภาพด้วยคอมพิวเตอร์

วันนี้เราเปลี่ยนจากจัดการข้อมูลโครงสร้างง่าย ๆ โดยใช้เลเยอร์เชิงเส้นพื้นฐาน มาสู่การจัดการข้อมูลภาพมิติสูง ภาพสีเพียงภาพเดียวทำให้เกิดความซับซ้อนอย่างมาก ซึ่งสถาปัตยกรรมมาตรฐานไม่สามารถจัดการได้อย่างมีประสิทธิภาพ การเรียนรู้เชิงลึกสำหรับงานด้านภาพต้องใช้วิธีเฉพาะเจาะจง: เครือข่ายประสาทเทียมแบบคอนโวลูชัน (CNN)

1. เหตุผลที่เครือข่ายที่เชื่อมโยงทุกจุด (FCN) ล้มเหลว

ในเครือข่ายที่เชื่อมโยงทุกจุด (FCN) ทุกพิกเซลของข้อมูลนำเข้าต้องเชื่อมต่อไปยังนิวรอนทุกตัวในเลเยอร์ถัดไป สำหรับภาพที่มีความละเอียดสูง ทำให้เกิดการระเบิดทางคำนวณ จนการฝึกอบรมกลายเป็นไปไม่ได้ และการทั่วไป (generalization) แย่ลงเนื่องจากเกิดการโอเวอร์ฟิตสูงมาก

  • มิติของข้อมูลนำเข้า:ภาพสีมาตรฐานขนาด $224 \times 224$ จะได้คุณสมบัติข้อมูลนำเข้าจำนวน $150,528$ ค่า ($224 \times 224 \times 3$)
  • ขนาดเลเยอร์ซ่อน:หากเลเยอร์ซ่อนแรกใช้นิวรอนจำนวน 1,024 ตัว
  • จำนวนพารามิเตอร์รวม (เลเยอร์ที่ 1):ประมาณ $154$ ล้านพารามิเตอร์ (ค่าคงที่ $150,528 \times 1024$) เพียงแค่สำหรับบล็อกการเชื่อมต่อครั้งแรก ซึ่งต้องการหน่วยความจำและเวลาคำนวณจำนวนมาก
แนวทางแก้ไขของ CNN
CNN แก้ปัญหาการขยายตัวของ FCN โดยใช้ประโยชน์จากโครงสร้างพื้นที่ของภาพ มันระบุรูปแบบ (เช่น ขอบหรือโค้ง) โดยใช้ฟิลเตอร์ขนาดเล็ก ลดจำนวนพารามิเตอร์ลงหลายเท่า และส่งเสริมความทนทาน
comparison.py
เทอร์มินัลbash — model-env
> พร้อมแล้ว คลิก "รัน" เพื่อเริ่มทำงาน
>
เครื่องมือตรวจสอบประสิทธิภาพของพารามิเตอร์สด

รันการเปรียบเทียบเพื่อดูจำนวนพารามิเตอร์
คำถามที่ 1
ข้อได้เปรียบหลักของการใช้สนามรับรู้ท้องถิ่นใน CNN คืออะไร?
ฟิลเตอร์จะโฟกัสเฉพาะพื้นที่เล็ก ๆ ที่ตั้งอยู่ในภาพนำเข้าเท่านั้น
มันช่วยให้เครือข่ายประมวลผลภาพทั้งหมดพร้อมกันทั้งหมดในคราวเดียว
มันรับประกันว่าพารามิเตอร์ทั้งหมดจะถูกตั้งค่าเริ่มต้นเป็นศูนย์
มันช่วยกำจัดความจำเป็นในการใช้ฟังก์ชันกระตุ้น
คำถามที่ 2
หากใช้ฟิลเตอร์ขนาด $3 \times 3$ ครอบคลุมภาพทั้งหมด แนวคิดหลักของ CNN ที่ถูกใช้คืออะไร?
การปรับมาตรฐานเคอร์เนล
น้ำหนักที่แบ่งปันกัน
การเชื่อมต่อทั้งหมด
การสลับตำแหน่งลักษณะ
คำถามที่ 3
ส่วนประกอบใดของ CNN ที่รับผิดชอบในการลดขนาดพื้นที่ (ความกว้างและความสูง) ของแผนภาพลักษณะ (feature maps) ทีละขั้น?
การกระตุ้นแบบ ReLU
เลเยอร์พูลลิ่ง (การลดขนาด)
การปรับมาตรฐานกลุ่ม
ภารกิจ: ระบุส่วนประกอบสำคัญของ CNN
เชื่อมโยงกลไกของ CNN กับประโยชน์เชิงหน้าที่
เราต้องสร้างโมเดลการรู้จำภาพที่มีประสิทธิภาพด้านพารามิเตอร์สูงมาก และสามารถระบุวัตถุได้ แม้ว่าจะเลื่อนตำแหน่งเล็กน้อยในภาพ
ขั้นตอนที่ 1
กลไกใดที่รับประกันว่าเครือข่ายสามารถระบุลักษณะ (เช่น เส้นทแยงมุม) ได้ ไม่ว่าจะอยู่ที่ไหนในเฟรม?
คำตอบ:
น้ำหนักที่แบ่งปันกัน โดยการใช้ฟิลเตอร์เดียวกันทั่วทั้งตำแหน่ง ทำให้เครือข่ายเรียนรู้ความไม่ขึ้นกับการเลื่อนตำแหน่ง
ขั้นตอนที่ 2
การเลือกสถาปัตยกรรมใดที่ทำให้ CNN ตรวจจับลักษณะได้ด้วยพารามิเตอร์น้อยกว่า FCN?
คำตอบ:
สนามรับรู้ท้องถิ่น (หรือการเชื่อมต่อแบบเบาบาง) แทนที่จะเชื่อมต่อทุกพิกเซล แต่แต่ละนิวรอนจะเชื่อมต่อกับพื้นที่เล็ก ๆ ที่ตั้งอยู่ในข้อมูลนำเข้าเท่านั้น
ขั้นตอนที่ 3
โครงสร้างของ CNN นำไปสู่การเรียนรู้ลักษณะแบบลำดับชั้นอย่างไร (เช่น ขอบ $\to$ มุม $\to$ วัตถุ)?
คำตอบ:
เลเยอร์ที่ซ้อนกัน เลเยอร์ชั้นแรกเรียนรู้ลักษณะง่าย ๆ (เช่น ขอบ) โดยใช้การคอนโวลูชัน เลเยอร์ลึกกว่าจะรวมเอาผลลัพธ์จากเลเยอร์ก่อนหน้าเพื่อสร้างลักษณะที่ซับซ้อนและเป็นนามธรรม (เช่น วัตถุ)